from math import *
from PublicReference.carry.base import *


class 职业主动技能(主动技能):

    data0 = []
    data1 = []
    data2 = []

    def 等效百分比(self, 武器类型):
        等效倍率 = 0.0
        if len(self.data0) >= self.等级 and len(self.data0) > 0:
            等效倍率 += self.data0[self.等级] * self.攻击次数
        if len(self.data1) >= self.等级 and len(self.data1) > 0:
            等效倍率 += self.data1[self.等级] * self.攻击次数2
        if len(self.data2) >= self.等级 and len(self.data2) > 0:
            等效倍率 += self.data2[self.等级] * self.攻击次数3
        return 等效倍率 * (1 + self.TP成长 * self.TP等级) * self.倍率

    # def 等效CD(self, 武器类型):
        # 战戟1.1
        # return round(self.CD  / self.恢复 * 1.1, 1)


class 技能0(被动技能):
    名称 = '战戟精通'
    所在等级 = 15
    等级上限 = 20
    基础等级 = 10

    def 加成倍率(self, 武器类型):
        return 1.0

    def 武器倍率(self):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.1 + 0.02 * self.等级, 5)


# 霸王戟=猛攻  有TP0.1
class 技能1(被动技能):
    名称 = '战戟猛攻'
    所在等级 = 25
    等级上限 = 30
    基础等级 = 20

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        elif self.等级 <= 20:
            return round(1 + 0.005 * self.等级, 5)
        else:
            return round(1.1 + 0.02 * (self.等级 - 20), 5)

    def 物理攻击力倍率进图(self, 武器类型):
        return self.加成倍率(武器类型)


class 技能2(被动技能):
    名称 = '战戟之魂'
    所在等级 = 48
    等级上限 = 40
    基础等级 = 20

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.025 + 0.02 * self.等级, 5)


class 技能3(被动技能):
    名称 = '战神之力'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 11

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.23 + 0.02 * self.等级, 5)

# 霸王机吃精通吗？


class 技能4(被动技能):
    名称 = '基础精通'
    倍率 = 1.0
    所在等级 = 1
    等级上限 = 200
    基础等级 = 100
    关联技能 = ['无']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(self.倍率 * (0.463 + 0.089 * self.等级), 5)


class 技能5(职业主动技能):
    名称 = '霸王戟'
    所在等级 = 25
    等级上限 = 1
    基础等级 = 1
    是否主动 = 0
    data0 = [(i*1.0) for i in [0, 2578, 2890, 3202, 3514, 3825, 4137, 4449, 4761, 5072, 5384, 5696, 6008, 6319,
                               6631, 6943, 7255, 7566, 7878, 8190, 8501, 8813, 9125, 9437, 9748, 10060, 10372, 10684, 10995, 11307, 11619]]
    攻击次数 = 1
    # 基础 = 2281
    # 成长 = 311
    CD = 0.5
    TP成长 = 0.10
    TP上限 = 5

# 果体测试就2段+1段


class 技能6(职业主动技能):
    名称 = '破军突击'
    所在等级 = 20
    等级上限 = 60
    基础等级 = 43
    # 基础 = 2476   #2585 3次  #测试只有2段+1
    # 成长 = 291   #307
    data0 = [(i*1.2045) for i in [0, 156, 172, 189, 205, 221, 236, 252, 269, 285, 300, 316, 332, 349, 364, 380, 396, 412, 428, 444, 460, 476, 491, 508, 524, 540, 555, 571, 588, 604, 620, 635, 651, 668, 684, 699, 715, 731, 747, 763, 779, 795, 811, 826, 843, 859, 875, 890, 906, 923, 939, 954, 970, 986, 1003, 1019, 1034, 1050, 1066, 1083, 1098, 1114, 1130, 1146, 1162, 1178, 1194, 1210, 1225, 1242, 1258]]
    攻击次数 = 2
    data1 = [(i*1.2045) for i in [0, 2673, 2944, 3215, 3487, 3758, 4029, 4301, 4572, 4843, 5115, 5385, 5656, 5928, 6199, 6470, 6741, 7013, 7284, 7555, 7827, 8098, 8369, 8640, 8911, 9182, 9454, 9725, 9996, 10268, 10539, 10810, 11081, 11353, 11624, 11894, 12166, 12437, 12708, 12980, 13251, 13522, 13794, 14065, 14336, 14608, 14879, 15149, 15420, 15692, 15963, 16234, 16506, 16777, 17048, 17320, 17591, 17862, 18134, 18404, 18675, 18947, 19218, 19489, 19761, 20032, 20303, 20574, 20846, 21117, 21387]]
    攻击次数2 = 1
    CD = 5
    # TP成长 = 0.10
    # TP上限 = 5


class 技能7(职业主动技能):
    名称 = '追魂斩'
    所在等级 = 25
    等级上限 = 60
    基础等级 = 41
    # 基础 = 3172
    # 成长 = 360
    data0 = [(i*1.2033) for i in [0, 1861, 2050, 2239, 2428, 2617, 2805, 2994, 3183, 3372, 3561, 3750, 3939, 4127, 4316, 4505, 4694, 4883, 5072, 5259, 5448, 5637, 5826, 6015, 6204, 6393, 6581, 6770, 6959, 7148, 7337, 7526, 7714, 7903, 8092, 8281, 8470, 8659, 8848, 9036, 9225, 9414, 9603, 9792, 9981, 10169, 10358, 10547, 10736, 10925, 11114, 11302, 11491, 11680, 11869, 12058, 12247, 12436, 12624, 12813, 13002, 13191, 13380, 13569, 13757, 13946, 14135, 14324, 14513, 14702, 14891]]
    攻击次数 = 2

    CD = 6
    TP成长 = 0.10
    TP上限 = 5


class 技能8(职业主动技能):
    名称 = '落月斩'
    所在等级 = 30
    等级上限 = 60
    基础等级 = 38
    data0 = [(i*1.2252) for i in [0, 5002, 5509, 6017, 6525, 7032, 7539, 8047, 8554, 9062, 9570, 10077, 10584, 11091, 11599, 12107, 12614, 13122, 13629, 14136, 14644, 15152, 15659, 16167, 16674, 17181, 17689, 18197, 18704, 19212, 19719, 20226, 20734, 21242, 21749, 22257, 22764, 23271, 23778, 24287, 24794, 25301, 25809, 26316, 26823, 27332, 27839, 28346, 28854, 29361, 29868, 30377, 30884, 31391, 31899, 32406, 32913, 33422, 33929, 34436, 34943, 35451, 35958, 36465, 36974, 37481, 37988, 38496, 39003, 39510, 40019]]
    攻击次数 = 1
    # 基础 = 4292
    # 成长 = 483
    CD = 7
    TP成长 = 0.10
    TP上限 = 5


class 技能9(职业主动技能):
    名称 = '冷血突刺'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    # 刺击攻击力：<data0>%
    data0 = [(i*1.2033) for i in [0, 6000, 6609, 7218, 7827, 8436, 9044, 9653, 10262, 10871, 11479, 12088, 12697, 13306, 13914, 14523, 15132, 15741, 16350, 16958, 17567, 18176, 18785, 19392, 20001, 20610, 21219, 21828, 22436, 23045, 23654, 24263, 24871, 25480, 26089, 26698, 27306, 27915, 28524, 29133, 29742, 30350, 30959, 31568, 32177, 32785, 33394, 34003, 34612, 35221, 35829, 36438, 37047, 37656, 38264, 38873, 39482, 40091, 40699, 41308, 41917, 42526, 43135, 43743, 44352, 44961, 45570, 46178, 46787, 47396, 48005]]
    # 每1次旋风打击的攻击力：<data1>%
    data1 = [(i*1.2033) for i in [0, 666, 734, 801, 869, 937, 1005, 1072, 1139, 1208, 1275, 1343, 1410, 1478, 1546, 1613, 1681, 1748, 1817, 1884, 1951, 2019, 2086, 2155, 2222, 2290, 2357, 2424, 2493, 2560, 2628, 2695, 2763, 2831, 2898, 2966, 3033, 3102, 3169, 3236, 3304, 3372, 3440, 3507, 3575, 3642, 3710, 3778, 3845, 3913, 3981, 4048, 4116, 4183, 4251, 4319, 4387, 4454, 4521, 4590, 4657, 4725, 4792, 4859, 4928, 4995, 5063, 5130, 5199, 5266, 5333]]
    攻击次数2 = 6
    # 基础 = 8672
    # 成长 = 963
    CD = 16
    TP成长 = 0.10
    TP上限 = 5

    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.2
        elif x == 1:
            self.倍率 *= 1.29


class 技能10(职业主动技能):
    名称 = '破灭斩'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    data0 = [(i*1.2029) for i in [0, 8270, 9110, 9949, 10788, 11627, 12466, 13305, 14144, 14982, 15821, 16660, 17500, 18339, 19178, 20017, 20856, 21695, 22534, 23373, 24212, 25052, 25891, 26730, 27569, 28408, 29247, 30086, 30925, 31764, 32603, 33443, 34281, 35120, 35959, 36798, 37637, 38476, 39315, 40154, 40994, 41833, 42672, 43511, 44350, 45189, 46028, 46867, 47706, 48545, 49385, 50224, 51063, 51902, 52740, 53579, 54418, 55257, 56096, 56936, 57775, 58614, 59453, 60292, 61131, 61970, 62809, 63648, 64488, 65327, 66166]]
    # 基础 = 7081
    # 成长 = 799
    CD = 14
    TP成长 = 0.10
    TP上限 = 5


class 技能11(职业主动技能):
    名称 = '夺命乱舞'
    所在等级 = 40
    等级上限 = 60
    基础等级 = 33
    # 基础 = 10134
    # 成长 = 1133
    # 每1次横斩的攻击力：<data0>%
    data0 = [(i*1.2023) for i in [0, 685, 755, 824, 894, 963, 1033, 1103, 1172, 1241, 1311, 1381, 1450, 1519, 1590, 1659, 1728, 1798, 1868, 1937, 2007, 2076, 2146, 2216, 2285, 2354, 2424, 2494, 2563, 2632, 2703, 2772, 2841, 2911, 2980, 3050, 3120, 3189, 3258, 3329, 3398, 3467, 3536, 3607, 3676, 3745, 3815, 3885, 3954, 4024, 4093, 4163, 4233, 4302, 4371, 4442, 4511, 4580, 4649, 4720, 4789, 4858, 4928, 4998, 5067, 5137, 5206, 5275, 5346, 5415, 5484]]
    攻击次数 = 12
    # 最后一击攻击力：<data1>%
    data1 = [(i*1.2023) for i in [0, 3526, 3883, 4241, 4599, 4956, 5314, 5672, 6029, 6387, 6745, 7102, 7460, 7818, 8175, 8533, 8891, 9248, 9606, 9965, 10322, 10680, 11038, 11395, 11753, 12111, 12469, 12826, 13184, 13542, 13899, 14257, 14615, 14972, 15330, 15688, 16045, 16403, 16761, 17118, 17476, 17834, 18191, 18549, 18907, 19264, 19622, 19980, 20337, 20696, 21054, 21411, 21769, 22127, 22484, 22842, 23200, 23557, 23915, 24273, 24631, 24988, 25346, 25704, 26061, 26419, 26777, 27134, 27492, 27850, 28207]]
    攻击次数2 = 1
    CD = 18
    TP成长 = 0.10
    TP上限 = 5

    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.27
        elif x == 1:
            self.倍率 *= 1.36


class 技能12(职业主动技能):
    名称 = '横扫八荒'
    所在等级 = 45
    等级上限 = 60
    基础等级 = 31
    # 基础 = 18970
    # 成长 = 2130
    # 每1次旋转横斩的攻击力：<data0>%
    data0 = [(i*1.2035) for i in [0, 1545, 1701, 1859, 2015, 2171, 2328, 2485, 2642, 2798, 2956, 3112, 3269, 3425, 3583, 3739, 3896, 4053, 4209, 4366, 4522, 4680, 4836, 4993, 5150, 5307, 5463, 5620, 5777, 5934, 6090, 6248, 6404, 6560, 6717, 6874, 7031, 7187, 7345, 7501, 7658, 7814, 7972, 8128, 8285, 8442, 8598, 8755, 8911, 9069, 9225, 9382, 9539, 9696, 9852, 10010, 10166, 10323, 10479, 10637, 10793, 10949, 11107, 11263, 11420, 11576, 11734, 11890, 12047, 12204, 12361]]
    攻击次数 = 9
    # 最后一击攻击力：<data1>%
    data1 = [(i*1.2035) for i in [0, 8167, 8995, 9824, 10652, 11481, 12309, 13138, 13966, 14795, 15623, 16451, 17281, 18109, 18938, 19766, 20595, 21423, 22252, 23080, 23909, 24737, 25565, 26394, 27223, 28052, 28880, 29709, 30537, 31366, 32194, 33023, 33851, 34679, 35508, 36337, 37166, 37994, 38823, 39651, 40480, 41308, 42137, 42965, 43793, 44622, 45450, 46280, 47108, 47937, 48765, 49594, 50422, 51251, 52079, 52907, 53736, 54564, 55393, 56222, 57051, 57879, 58708, 59536, 60365, 61193, 62021, 62850, 63678, 64507, 65336]]
    攻击次数2 = 1
    CD = 40
    TP成长 = 0.10
    TP上限 = 5

    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.2587
        elif x == 1:
            self.倍率 *= 1.4187


class 技能13(职业主动技能):
    名称 = '长虹贯日'
    所在等级 = 60
    等级上限 = 40
    基础等级 = 23
    # 基础 = 17551
    # 成长 = 1979
    # 刺击攻击力：<data0>%
    data0 = [(i*1.2049) for i in [0, 6147, 6770, 7394, 8018, 8642, 9265, 9889, 10513, 11136, 11759, 12383, 13006, 13630, 14254, 14877, 15501, 16125, 16749, 17372, 17996, 18620, 19243, 19867, 20491, 21114, 21737, 22361, 22985, 23608, 24232, 24856, 25479, 26103, 26727, 27350, 27974, 28598, 29222, 29845, 30469, 31092, 31715, 32339, 32963, 33586, 34210, 34834, 35457, 36081, 36705, 37329, 37952, 38576, 39200, 39823, 40447, 41070, 41693, 42317, 42941, 43565, 44188, 44812, 45436, 46059, 46683, 47307, 47930, 48554, 49178]]
    # 最后一击攻击力：<data1>%
    data1 = [(i*1.2049) for i in [0, 14343, 15798, 17254, 18709, 20163, 21618, 23074, 24529, 25984, 27440, 28895, 30349, 31805, 33260, 34715, 36170, 37626, 39081, 40535, 41991, 43446, 44901, 46356, 47812, 49267, 50721, 52177, 53632, 55087, 56543, 57998, 59452, 60907, 62363, 63818, 65273, 66729, 68184, 69638, 71093, 72549, 74004, 75459, 76915, 78370, 79824, 81279, 82735, 84190, 85645, 87101, 88556, 90010, 91466, 92921, 94376, 95831, 97287, 98741, 100196, 101652, 103107, 104562, 106017, 107473, 108927, 110382, 111838, 113293, 114748]]
    攻击次数2 = 1
    CD = 25
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.232
            self.CD *=0.9
        elif x == 1:
            self.倍率 *= 1.323
            self.CD *=0.9

# 下劈中了，就不中冲击波。下劈。冲击波不计算伤害


class 技能14(职业主动技能):
    名称 = '穿云裂地斩-下劈'
    所在等级 = 70
    等级上限 = 40
    基础等级 = 18
    # 下劈攻击力：<data0>%
    data0 = [(i*1.2097) for i in [0, 39459, 43463, 47466, 51469, 55473, 59475, 63479, 67481, 71485, 75488, 79491, 83495, 87498, 91501, 95504, 99507, 103510, 107514, 111516, 115520, 119524, 123526, 127530, 131532, 135536, 139539, 143542, 147545, 151549, 155552, 159555, 163559, 167561, 171565, 175567, 179571, 183574, 187577, 191581, 195584, 199587, 203590, 207593, 211596, 215600, 219602, 223606, 227610, 231612, 235616, 239618, 243622, 247625, 251628, 255631, 259635, 263638, 267641, 271644, 275647, 279651, 283653, 287657, 291660, 295663, 299667, 303669, 307673, 311676, 315679]]
    # 冲击波攻击力：<data1>%
    data1 = [(i*1.2097) for i in [0, 35303, 38885, 42466, 46048, 49629, 53211, 56792, 60374, 63956, 67537, 71119, 74699, 78281, 81862, 85444, 89025, 92607, 96188, 99770, 103352, 106933, 110515, 114096, 117678, 121259, 124841, 128422, 132004, 135585, 139167, 142749, 146330, 149912, 153493, 157075, 160656, 164238, 167819, 171400, 174981, 178563, 182145, 185726, 189308, 192889, 196471, 200052, 203634, 207215, 210797, 214379, 217960, 221542, 225123, 228705, 232286, 235868, 239449, 243031, 246612, 250194, 253776, 257357, 260939, 264520, 268102, 271682, 275264, 278845, 282427]]
    攻击次数2 = 0
    # 基础 = 33760    #125368
    # 成长 =  3813  #3813
    # 冲击波
    #基础= 30210
    #成长 = 3411
    CD = 50
    TP成长 = 0.10
    TP上限 = 5

    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.22
        elif x == 1:
            self.倍率 *= 1.30


class 技能15(职业主动技能):
    名称 = '破灭轮回刺'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 16
    # 基础 = 43816
    # 成长 = 4948
    # 旋转斩击攻击力：<data0>%
    data0 = [(i*1.21) for i in [0, 5121, 5640, 6159, 6679, 7199, 7718, 8237, 8757, 9277, 9795, 10315, 10835, 11355, 11874, 12393, 12913, 13433, 13952, 14471, 14991, 15511, 16030, 16549, 17069, 17589, 18108, 18628, 19147, 19667, 20186, 20706, 21225, 21744, 22264, 22784, 23303, 23822, 24342, 24862, 25382, 25900, 26420, 26940, 27460, 27978, 28498, 29018, 29538, 30057, 30576, 31096, 31616, 32135, 32654, 33174, 33693, 34213, 34732, 35252, 35771, 36291, 36811, 37330, 37849, 38369, 38889, 39408, 39927, 40447, 40967]]
    攻击次数 = 2
    # 最后一击攻击力：<data1>%
    data1 = [(i*1.21) for i in [0, 40967, 45123, 49279, 53435, 57590, 61746, 65903, 70059, 74215, 78371, 82527, 86683, 90840, 94996, 99152, 103307, 107463, 111619, 115776, 119932, 124088, 128244, 132400, 136556, 140713, 144869, 149024, 153180, 157336, 161492, 165649, 169805, 173961, 178117, 182273, 186429, 190586, 194741, 198897, 203053, 207209, 211365, 215522, 219678, 223834, 227990, 232146, 236301, 240458, 244614, 248770, 252926, 257082, 261238, 265394, 269551, 273707, 277863, 282018, 286174, 290330, 294487, 298643, 302799, 306955, 311111, 315267, 319424, 323580, 327735]]
    攻击次数2 = 1
    CD = 40
    是否有护石 = 1
    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.33


class 技能16(职业主动技能):
    名称 = '断魂裂岩斩'
    所在等级 = 80
    等级上限 = 40
    基础等级 = 13
    # 基础 = 48000
    # 成长 = 5433
    # 斩击攻击力：<data0>%
    data0 = [(i*1.2243) for i in [0, 44942, 49501, 54060, 58619, 63180, 67739, 72298, 76857, 81417, 85976, 90535, 95094, 99654, 104214, 108773, 113332, 117892, 122451, 127010, 131569, 136129, 140688, 145248, 149807, 154367, 158926, 163485, 168044, 172604, 177163, 181722, 186282, 190842, 195401, 199960, 204519, 209079, 213638, 218197, 222756, 227317, 231876, 236435, 240994, 245554, 250113, 254672, 259231, 263792, 268351, 272910, 277469, 282029, 286588, 291147, 295706, 300266, 304826, 309385, 313944, 318504, 323063, 327622, 332181, 336741, 341300, 345860, 350419, 354979, 359538]]
    攻击次数 = 1
    # 多段打击攻击力：<data1>%
    data1 = [(i*1.2243) for i in [0, 1124, 1237, 1351, 1465, 1579, 1693, 1807, 1920, 2035, 2149, 2263, 2377, 2491, 2605, 2718, 2833, 2946, 3061, 3175, 3289, 3403, 3516, 3631, 3744, 3859, 3972, 4087, 4201, 4314, 4429, 4542, 4657, 4770, 4885, 4998, 5112, 5227, 5340, 5455, 5568, 5683, 5796, 5910, 6024, 6138, 6253, 6366, 6481, 6594, 6708, 6822, 6936, 7050, 7164, 7279, 7392, 7506, 7620, 7734, 7848, 7962, 8076, 8190, 8304, 8418, 8532, 8646, 8760, 8874, 8988]]
    攻击次数2 = 10
    CD = 45
    是否有护石 = 1
    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.35


class 技能17(职业主动技能):
    名称 = '千魂弑'
    所在等级 = 50
    等级上限 = 40
    基础等级 = 12
    # 下劈攻击力：<data0>%
    data0 = [(i*1.21) for i in [0, 12030, 14820, 17610, 20399, 23189, 25979, 28768, 31558, 34348, 37137, 39927, 42717, 45507, 48296, 51086, 53876, 56665, 59455, 62245, 65035, 67824, 70614, 73403, 76193, 78983, 81773, 84563, 87352, 90141, 92931, 95721, 98511, 101301, 104091, 106880, 109669, 112459, 115249, 118039, 120829, 123619, 126407, 129197, 131987, 134777, 137567, 140357, 143147, 145935, 148725, 151515, 154305, 157095, 159885, 162674, 165464, 168253, 171043, 173833, 176623, 179412, 182202, 184992, 187781, 190571, 193361, 196151, 198940, 201730, 204520]]
    攻击次数 = 1
    # 最后一击攻击力：<data1>%
    data1 = [(i*1.21) for i in [0, 48122, 59281, 70439, 81599, 92757, 103916, 115075, 126233, 137393, 148551, 159710, 170869, 182028, 193186, 204346, 215504, 226662, 237822, 248980, 260140, 271298, 282457, 293616, 304774, 315933, 327092, 338251, 349410, 360569, 371727, 382887, 394045, 405203, 416363, 427521, 438681, 449839, 460998, 472157, 483316, 494474, 505633, 516792, 527951, 539110, 550268, 561428, 572586, 583744, 594904, 606062, 617222, 628380, 639539, 650698, 661857, 673015, 684174, 695333, 706491, 717651, 728809, 739969, 751127, 762286, 773445, 784603, 795762, 806921, 818080]]
    攻击次数2 = 1
    # 基础 = 44019
    # 成长 = 13283
    CD = 145


class 技能18(职业主动技能):
    名称 = '血战天狱'
    所在等级 = 85
    等级上限 = 40
    基础等级 = 5
    # 第1~4击攻击力：<data0>%
    data0 = [(i*1.2097) for i in [0, 18639, 22961, 27283, 31605, 35928, 40250, 44571, 48894, 53216, 57538, 61861, 66183, 70504, 74827, 79149, 83471, 87794, 92115, 96438, 100760, 105082, 109405, 113727, 118048, 122371, 126693, 131015, 135338, 139659, 143981, 148304, 152626, 156948, 161271, 165592, 169914, 174237, 178559, 182881, 187203, 191525, 195848, 200170, 204492, 208815, 213136, 217458, 221781, 226103, 230425, 234747, 239069, 243391, 247714, 252036, 256358, 260680, 265002, 269324, 273647, 277969, 282290, 286613, 290935, 295258, 299580, 303902, 308224, 312546, 316868]]
    攻击次数 = 4
    # 最后一击攻击力：<data1>%
    data1 = [(i*1.2097) for i in [0, 74557, 91846, 109134, 126423, 143711, 161000, 178289, 195577, 212867, 230155, 247443, 264732, 282021, 299310, 316598, 333886, 351176, 368464, 385753, 403041, 420330, 437619, 454907, 472197, 489485, 506773, 524062, 541351, 558639, 575928, 593216, 610506, 627794, 645082, 662372, 679660, 696949, 714237, 731526, 748815, 766103, 783392, 800681, 817969, 835258, 852546, 869836, 887124, 904412, 921702, 938990, 956278, 973567, 990856, 1008145, 1025433, 1042721, 1060011, 1077299, 1094588, 1111877, 1129165, 1146454, 1163742, 1181032, 1198320, 1215608, 1232897, 1250186, 1267475]]
    攻击次数2 = 1
    # 基础 = 109081
    # 成长 = 32931
    CD = 180


class 技能19(被动技能):
    名称 = '灭天之魂'
    所在等级 = 95
    等级上限 = 40
    等级精通 = 30
    基础等级 = 4

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能20(职业主动技能):
    名称 = '镇狱裂地枪'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 6
    data0 = [int(i*1.2009) for i in [0, 36241, 39918, 43594, 47271, 50948, 54624, 58301, 61977, 65654, 69330, 73008, 76685, 80361, 84038, 87714, 91391, 95068, 98744, 102421, 106097, 109774, 113451, 117128, 120805, 124481, 128158, 131835, 135511, 139188, 142864, 146541, 150217, 153894, 157571, 161247, 164925, 168601, 172278, 175955, 179631, 183308, 186984, 190661, 194338, 198014, 201691, 205367, 209045, 212722, 216398, 220075, 223751, 227428, 231104, 234781, 238458, 242134, 245811, 249487, 253164, 256842, 260518, 264195, 267871, 271548, 275225, 278901, 282578, 286254, 289931]]
    攻击次数 = 1
    data1 = [int(i*1.2009) for i in [0, 84563, 93141, 101721, 110299, 118879, 127457, 136036, 144615, 153194, 161772, 170352, 178931, 187510, 196089, 204667, 213247, 221825, 230405, 238983, 247562, 256141, 264720, 273298, 281878, 290456, 299036, 307614, 316193, 324772, 333351, 341929, 350509, 359087, 367667, 376245, 384824, 393404, 401982, 410561, 419140, 427719, 436298, 444877, 453455, 462035, 470613, 479192, 487771, 496350, 504929, 513508, 522086, 530666, 539244, 547823, 556402, 564981, 573560, 582139, 590717, 599297, 607875, 616455, 625034, 633612, 642192, 650770, 659349, 667928, 676507]]
    攻击次数2 = 1
    CD = 60.0


class 技能21(职业主动技能):
    名称 = '天劫·斗灭乾坤'
    所在等级 = 100
    等级上限 = 40
    等级精通 = 30
    基础等级 = 2
    关联技能 = ['无']
    CD = 290.0
    data0 = [int(i*1.2124) for i in [0, 410289, 505428, 600566, 695706, 790845, 885985, 981125, 1076264, 1171403, 1266543, 1361682, 1456821, 1551961, 1647099, 1742239, 1837379, 1932519, 2027658, 2122798, 2217936, 2313075, 2408215, 2503354, 2598495, 2693634, 2788773, 2883912, 2979052, 3074191, 3169331, 3264470, 3359608, 3454749, 3549888, 3645028, 3740167, 3835306, 3930445, 4025585, 4120724, 4215864, 4311004, 4406142, 4501282, 4596421, 4691561, 4786700, 4881839, 4976978, 5072118, 5167258, 5262397, 5357536, 5452675, 5547815, 5642954, 5738094, 5833234, 5928372, 6023512, 6118651, 6213791, 6308930, 6404070, 6499208, 6594349, 6689488, 6784628, 6879767, 6974906]]
    攻击次数 = 1

    def 加成倍率(self, 武器类型):
        return 0.0


技能列表 = []
i = 0
while i >= 0:
    try:
        tem = eval('技能'+str(i)+'()')
        tem.基础等级计算()
        技能列表.append(tem)
        i += 1
    except:
        i = -1

技能序号 = dict()
for i in range(len(技能列表)):
    技能序号[技能列表[i].名称] = i

一觉序号 = 0
二觉序号 = 0
三觉序号 = 0
for i in 技能列表:
    if i.所在等级 == 50:
        一觉序号 = 技能序号[i.名称]
    if i.所在等级 == 85:
        二觉序号 = 技能序号[i.名称]
    if i.所在等级 == 100:
        三觉序号 = 技能序号[i.名称]

护石选项 = ['无']
for i in 技能列表:
    if i.是否有伤害 == 1 and i.是否有护石 == 1:
        护石选项.append(i.名称)

符文选项 = ['无']
for i in 技能列表:
    if i.所在等级 >= 20 and i.所在等级 <= 80 and i.所在等级 != 50 and i.是否有伤害 == 1:
        符文选项.append(i.名称)


class 职业属性(角色属性):
    实际名称 = '千魂·征战者'
    角色 = '魔枪士'
    职业 = '征战者'

    武器选项 = ['战戟']

    类型选择 = ['物理百分比']

    类型 = '物理百分比'
    防具类型 = '重甲'
    防具精通属性 = ['力量']

    主BUFF = 1.80

    def __init__(self):
        基础属性输入(self)
        self.技能栏 = deepcopy(技能列表)
        self.技能序号 = deepcopy(技能序号)

    def 被动倍率计算(self):
        # 霸王戟等级 = 战戟猛攻等级
        self.技能栏[self.技能序号['霸王戟']].等级 = self.技能栏[self.技能序号['战戟猛攻']].等级
        self.物理攻击力 = int((self.物理攻击力 - 65) *
                         self.技能栏[self.技能序号['战戟精通']].武器倍率() + 65)
        super().被动倍率计算()

    def 伤害指数计算(self):
        self.进图物理攻击力 = int((self.进图物理攻击力 - 40) *
                           self.技能栏[self.技能序号['战戟精通']].武器倍率() + 40)
        super().伤害指数计算()


class 千魂·征战者(角色窗口):
    def 窗口属性输入(self):
        self.初始属性 = 职业属性()
        self.角色属性A = 职业属性()
        self.角色属性B = 职业属性()
        self.一觉序号 = 一觉序号
        self.二觉序号 = 二觉序号
        self.三觉序号 = 三觉序号
        self.护石选项 = deepcopy(护石选项)
        self.符文选项 = deepcopy(符文选项)
